package com.ruoyi.equ.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.equ.domain.BrandModelChildVo;
import com.ruoyi.equ.domain.BrandModelVo;
import com.ruoyi.equ.domain.EquAsset;
import com.ruoyi.equ.domain.MonthlyFaultRate;

/**
 * 资产设备Service接口
 *
 * @author ruoyi
 * @date 2025-11-05
 */
public interface IEquAssetService
{
    /**
     * 查询资产设备
     *
     * @param assetId 资产设备主键
     * @return 资产设备
     */
    public EquAsset selectEquAssetByAssetId(Long assetId);

    /**
     * 查询资产设备列表
     *
     * @param equAsset 资产设备
     * @return 资产设备集合
     */
    public List<EquAsset> selectEquAssetList(EquAsset equAsset);

    /**
     * 查询可以报废的资产设备列表-'正常','待报废'
     *
     * @param equAsset 资产设备
     * @return 资产设备集合
     */
    public List<EquAsset> selectEquAssetListCommon(EquAsset equAsset);

    /**
     * 新增资产设备
     *
     * @param equAsset 资产设备
     * @return 结果
     */
    public int insertEquAsset(EquAsset equAsset);

    /**
     * 修改资产设备
     *
     * @param equAsset 资产设备
     * @return 结果
     */
    public int updateEquAsset(EquAsset equAsset);

    /**
     * 批量删除资产设备
     *
     * @param assetIds 需要删除的资产设备主键集合
     * @return 结果
     */
    public int deleteEquAssetByAssetIds(Long[] assetIds);

    /**
     * 删除资产设备信息
     *
     * @param assetId 资产设备主键
     * @return 结果
     */
    public int deleteEquAssetByAssetId(Long assetId);

    public List<EquAsset> selectBroken1MouthEquAssetList(EquAsset equAsset);

    List<EquAsset> selectBroken1YearEquAssetList(EquAsset equAsset);

    Map<String, Map<String, Integer>> getEquipmentData();


    List<BrandModelVo> selectAllAssetBrandAndModelSpec();

    List<MonthlyFaultRate> getMonthlyFaultRateData(Map<String, Object> params);
    /**
     * 查询所有资产设备名称
     * @return 结果
     * */
    List<String> getAllAssetName();
}
